
DataAbortHandler: (0x00393114)
	@ label = 'DataAbortHandler'
	sub     lr, lr, #8                	# remove the prefetch offset from the return address
        stmdb   sp!, {r0, r1}                   # save r0 and r1
        mov     r0, =0x55555555                 # r0 = 0x55555555
        stmdb   sp!, {r0, r1}             	# save r0 and r1 again
        ldr     r1, =0x0C008400             	# r1 = 0x0C008400 = gParamBlockFromImage (some variable in system RAM)
	str     r0, [r1, #176]            	# r1[176] = r0
        ldmia   sp!, {r0, r1}             	# restore r0 = 0x55555555 and r1
        mcr     15, 0, r0, cr3, cr3, 0    	# write coproc 15, register 3, DomainAccessControl (16 bit pairs)
        mrs     r1, spsr                  	# r1 = CPU flags before fault
	and     r1, r1, #31               	# just keep the mode bits
                                                # user=16, FIQ=17, IRQ=18, supervisor mode=19, Abort=23, 27=UndefInstr
	cmp     r1, #16                   	# if mode is not 16 (USER)
	cmpne   r1, #0                    	# and not 0 (???)
	cmpne   r1, #27                   	# and not 27 (UNDEF)
        bne     L00393898                 	# then jump to Kernel Panic: "Non-user-mode abort"
	cmp     r1, #27                   	# is it mode 27 (UNDEF)
        bne     L0039318C                 	# if not, jump to handle User Mode

# Handle Abort in Undefined Instruction mode
        mrs     r0, cpsr                  	# r0 = current flags
        mrs     r1, spsr                  	# r1 = old flags
        msr     cpsr, r1                  	# restore old flags
        mov     r1, sp                    	# r1 = stack pointer before abort
        msr     cpsr, r0                        # restore current flags
        b       L003931C0                 	# jump to Abort Handle in vaild mode

# Handle Abort in User Mode
L0039318C:
	mrs     r1, cpsr                  	# r1 = CPU flags
	orr     r0, r1, #192              	# keep IRQ and FIQ flags in r0
        msr     cpsr_ctl, r0              	# disable interrupts
        mov     r0, sp                    	# r0 = sp
	sub     sp, sp, #4                	# make room
        stmdb   r0, {sp}                  	# put sp-4 onto the stack
	stmdb   r0, {sp}^                 	# put sp-4 onto the stack again
        msr     cpsr_ctl, r1              	# reset the interrupt flags
        ldmia   sp!, {r1}                 	# ?

# Handle Abort in any valid mode
L003931C0:
        ldr     r0, =0x0C100FF8             	# gCurrentTask 
        ldr     r0, [r0]                  	# r0 = CTask 
	str     r1, [r0, #96]             	# gCurrentTask->sp = sp
        mrc     15, 0, r1, cr0, cr0, 0    	# read Coproc reg 0 (CPU Ident: 0x4401A100)
	bic     r1, r1, #15               	@ 0x003931D0 0xE3C1100F - .... 
	eor     r1, r1, #1140850688       	@ 0x003931D4 0xE2211311 - .!.. 
	eor     r1, r1, #65536            	@ 0x003931D8 0xE2211801 - .!.. 
	eors    r1, r1, #41216            	@ 0x003931DC 0xE2311CA1 - .1.. 
        beq     L00393258                 	# jump if it is a SA-110

# (Not used, other CPU)
        ....

# Handle SA-110
L00393258:
        stmdb   sp!, {r2}                 	# save r2
        ldr     r0, =0x0F240000             	# r0 = kHdWr_ExtDataAbt1
	add     r1, r0, #1024             	# r1 = kHdWr_ExtDataAbt2
	add     r2, r0, #2048             	# r2 = kHdWr_ExtDataAbt3
        ldr     r0, [r0]                  	# read HW register1
	ldr     r2, [r2]                  	# read HW register3
        and     r0, r0, r2                	# mask r0
        ldr     r2, =0x000001FF             	# r2 = 511
        ands    r0, r0, r2                	# keep the last 9 bits
        ldmia   sp!, {r2}                 	# restore r2
        strne   r0, [r1]                  	# if not 0, write the masked value to HW regster2
        bne     L00393894                 	# if not 0, jump
        mrc     15, 0, r1, cr5, cr5, 0    	# read Coproc register 5, Fault Status (Domain:4, Status:4)
	and     r1, r1, #255              	#
	and     r1, r1, #15               	# keep the status
	add     pc, pc, r1, lsl #2        	# switch (status)
	nop                               	
        b       L003932DC.                      # 0
        b       L003932FC.                 	# 1: alignment
        b       L003932DC.                 	# 2
        b       L003932FC.                 	# 3: alignment
        b       L0039339C.                	# 4
        b       L00393314.                 	# 5: Section Translation
        b       L0039339C.                	# 6
        b       L00393314.                 	# 7: Page Translation
        b       L0039339C.                 	# 8: Section External
        b       L00393314.                 	# 9: Section Domain
        b       L0039339C.                 	# 10: Page External
        b       L00393314.                 	# 11: Page Domain
        b       L0039339C.                 	# 12
        b       L0039339C.                 	# 13: Section Permission
        b       L0039339C.                 	# 14
        b       L0039339C.                 	# 15: Page Permission

L003932DC: # case 0: case 2: 
	mrs     r0, spsr                  	@ 0x003932DC 0xE14F0000 - .O.. 
	and     r0, r0, #31               	@ 0x003932E0 0xE200001F - .... 
	cmp     r0, #27                   	@ 0x003932E4 0xE350001B - .P.. 
	beq     L003932F8                 	@ 0x003932E8 0x0A000002 - .... 
        ldr     r0, =0x003712B8             	# Exception: exBusError
        ldr     r0, [r0]                  	# pointer to ASCII text
        b       L003938C4                       # Throw
L003932F8:
	b       VEC_CantThrowInUndefinedModeReboot  @ 0x003932F8 0xEA5E05DE - .^.. 

L003932FC: # case 1: case 3: 
        ldr     r0, L0039396C             	# Exception: exAlignment
        ldr     r0, [r0]                  	# text
        b       L003938C4                 	# Throw
	ldr     r0, L00393970             	@ 0x00393308 0xE59F0660 - ...` 
	ldr     r0, [r0]                  	@ 0x0039330C 0xE5900000 - .... 
        b       L003938C4                 	# Throw

L00393314: # case 5: case 7: case 9: case 11:
	stmdb   sp!, {r2}                 	@ 0x00393314 0xE92D0004 - .-.. 
	ldr     r1, =0x0C100FF8             	# gCurrentTask (CTask)
	ldr     r1, [r1]                  	@ 0x0039331C 0xE5911000 - .... 
	mov     r0, #0                    	@ 0x00393320 0xE3A00000 - .... 
	ldr     r2, [r1, #116]            	@ 0x00393324 0xE5912074 - ...t 
	cmp     r2, #0                    	@ 0x00393328 0xE3520000 - .R.. 
	ldrne   r2, [r2, #16]             	@ 0x0039332C 0x15922010 - .... 
	orrne   r0, r0, r2                	@ 0x00393330 0x11800002 - .... 
	ldr     r2, [r1, #120]            	@ 0x00393334 0xE5912078 - ...x 
	cmp     r2, #0                    	@ 0x00393338 0xE3520000 - .R.. 
	ldrne   r2, [r2, #16]             	@ 0x0039333C 0x15922010 - .... 
	orrne   r0, r0, r2                	@ 0x00393340 0x11800002 - .... 
L00393344:
	ldr     r1, [r1, #124]            	@ 0x00393344 0xE591107C - ...| 
	cmp     r1, #0                    	@ 0x00393348 0xE3510000 - .Q.. 
	beq     L00393368                 	@ 0x0039334C 0x0A000005 - .... 
	ldr     r2, [r1, #116]            	@ 0x00393350 0xE5912074 - ...t 
	cmp     r2, #0                    	@ 0x00393354 0xE3520000 - .R.. 
	beq     L00393368                 	@ 0x00393358 0x0A000002 - .... 
	ldr     r2, [r2, #16]             	@ 0x0039335C 0xE5922010 - .... 
	orr     r0, r0, r2                	@ 0x00393360 0xE1800002 - .... 
	b       L00393344                 	@ 0x00393364 0xEAFFFFF6 - .... 
L00393368:
	ldmia   sp!, {r2}                 	@ 0x00393368 0xE8BD0004 - .... 
	mrc     15, 0, r1, cr5, cr5, 0    	@ 0x0039336C 0xEE151F15 - .... 
	and     r1, r1, #255              	@ 0x00393370 0xE20110FF - .... 
	mov     r1, r1, lsr #3            	@ 0x00393374 0xE1A011A1 - .... 
	and     r1, r1, #30               	@ 0x00393378 0xE201101E - .... 
	mov     r0, r0, lsr r1            	@ 0x0039337C 0xE1A00130 - ...0 
	and     r0, r0, #3                	@ 0x00393380 0xE2000003 - .... 
	add     pc, pc, r0, lsl #2        	@ 0x00393384 0xE08FF100 - .... 
	nop                               	@ 0x00393388 0xE1A00000 - .... 
        b       L003932DC                 	# Throw an exception
	b       L0039339C                 	@ 0x00393390 0xEA000001 - .... 
	b       L0039339C                 	@ 0x00393394 0xEA000000 - .... 
        b       L003932DC                 	# Throw an exception

L0039339C: # case 4: case 6: case 8: case 10: case 12: case 13: case 14: case 15:
	ldr     r0, =0x0C100FF8             	# gCurrentTask (CTask)
	ldr     r0, [r0]                  	@ 0x003933A0 0xE5900000 - .... 
	mrs     r1, spsr                  	@ 0x003933A4 0xE14F1000 - .O.. 
	str     r1, [r0, #80]             	@ 0x003933A8 0xE5801050 - ...P 
	and     r1, r1, #31               	@ 0x003933AC 0xE201101F - .... 
	cmp     r1, #27                   	@ 0x003933B0 0xE351001B - .Q.. 
	add     r1, r0, #24               	@ 0x003933B4 0xE2801018 - .... 
	stmdb   sp!, {r0}                 	@ 0x003933B8 0xE92D0001 - .-.. 
	mrs     r0, cpsr                  	@ 0x003933BC 0xE10F0000 - .... 
	msr     cpsr_ctl, #211            	@ 0x003933C0 0xE321F0D3 - .!.. 
	nop                               	@ 0x003933C4 0xE1A00000 - .... 
	nop                               	@ 0x003933C8 0xE1A00000 - .... 
	stmneia r1!, {r2-r7}              	@ 0x003933CC 0x18A100FC - .... 
	stmneia r1, {r8-lr}^              	@ 0x003933D0 0x18C17F00 - ... 
	nop                               	@ 0x003933D4 0xE1A00000 - .... 
	msr     cpsr, r0                  	@ 0x003933D8 0xE129F000 - .).. 
	nop                               	@ 0x003933DC 0xE1A00000 - .... 
	nop                               	@ 0x003933E0 0xE1A00000 - .... 
	ldmia   sp!, {r0}                 	@ 0x003933E4 0xE8BD0001 - .... 
	bne     L0039341C                 	@ 0x003933E8 0x1A00000B - .... 
	stmia   r1!, {r2-r12}             	@ 0x003933EC 0xE8A11FFC - .... 
	nop                               	@ 0x003933F0 0xE1A00000 - .... 
	mrs     r4, cpsr                  	@ 0x003933F4 0xE10F4000 - ..@. 
	mrs     r5, spsr                  	@ 0x003933F8 0xE14F5000 - .OP. 
	msr     cpsr, r5                  	@ 0x003933FC 0xE129F005 - .).. 
	nop                               	@ 0x00393400 0xE1A00000 - .... 
	nop                               	@ 0x00393404 0xE1A00000 - .... 
	stmia   r1, {sp, lr}              	@ 0x00393408 0xE8816000 - ..`. 
	nop                               	@ 0x0039340C 0xE1A00000 - .... 
	msr     cpsr, r4                  	@ 0x00393410 0xE129F004 - .).. 
	nop                               	@ 0x00393414 0xE1A00000 - .... 
	nop                               	@ 0x00393418 0xE1A00000 - .... 
L0039341C:
	add     r1, r0, #16               	@ 0x0039341C 0xE2801010 - .... 
	str     lr, [r1, #60]             	@ 0x00393420 0xE581E03C - ...< 
	ldmia   sp!, {r2, r3}             	@ 0x00393424 0xE8BD000C - .... 
	stmia   r1, {r2, r3}              	@ 0x00393428 0xE881000C - .... 
	ldr     r2, =0x0C100FF8             	# gCurrentTask (CTask)
	ldr     r2, [r2]                  	@ 0x00393430 0xE5922000 - .... 
	mov     r1, #0                    	@ 0x00393434 0xE3A01000 - .... 
	ldr     r3, [r2, #116]            	@ 0x00393438 0xE5923074 - ..0t 
	cmp     r3, #0                    	@ 0x0039343C 0xE3530000 - .S.. 
	ldrne   r3, [r3, #16]             	@ 0x00393440 0x15933010 - ..0. 
	orrne   r1, r1, r3                	@ 0x00393444 0x11811003 - .... 
	ldr     r3, [r2, #120]            	@ 0x00393448 0xE5923078 - ..0x 
	cmp     r3, #0                    	@ 0x0039344C 0xE3530000 - .S.. 
	ldrne   r3, [r3, #16]             	@ 0x00393450 0x15933010 - ..0. 
	orrne   r1, r1, r3                	@ 0x00393454 0x11811003 - .... 
L00393458:
	ldr     r2, [r2, #124]            	@ 0x00393458 0xE592207C - ...| 
	cmp     r2, #0                    	@ 0x0039345C 0xE3520000 - .R.. 
	beq     L0039347C                 	@ 0x00393460 0x0A000005 - .... 
	ldr     r3, [r2, #116]            	@ 0x00393464 0xE5923074 - ..0t 
	cmp     r3, #0                    	@ 0x00393468 0xE3530000 - .S.. 
	beq     L0039347C                 	@ 0x0039346C 0x0A000002 - .... 
	ldr     r3, [r3, #16]             	@ 0x00393470 0xE5933010 - ..0. 
	orr     r1, r1, r3                	@ 0x00393474 0xE1811003 - .... 
	b       L00393458                 	@ 0x00393478 0xEAFFFFF6 - .... 
L0039347C:
	str     r1, [r0, #112]            	@ 0x0039347C 0xE5801070 - ...p 
	mrc     15, 0, r1, cr5, cr5, 0    	@ 0x00393480 0xEE151F15 - .... 
	and     r1, r1, #255              	@ 0x00393484 0xE20110FF - .... 
	mrc     15, 0, r2, cr6, cr6, 0    	@ 0x00393488 0xEE162F16 - ../. 
	str     r1, [r0, #88]             	@ 0x0039348C 0xE5801058 - ...X 
	str     r2, [r0, #84]             	@ 0x00393490 0xE5802054 - ...T 
	mov     r3, #4                    	@ 0x00393494 0xE3A03004 - ..0. 
	str     r3, [r0, #92]             	@ 0x00393498 0xE580305C - ..0\ 
	mov     r0, r1, lsr #4            	@ 0x0039349C 0xE1A00221 - ...! 
	and     r0, r0, #15               	@ 0x003934A0 0xE200000F - .... 
	sub     sp, sp, #8                	@ 0x003934A4 0xE24DD008 - .M.. 
	mov     r1, sp                    	@ 0x003934A8 0xE1A0100D - .... 
	bl      VEC_GetDomainAndFaultMonitorFromDomainNumber  @ 0x003934AC 0xEB610140 - .a.@ 
	ldr     r0, =0x0C100FF8             	# gCurrentTask (CTask)
	ldr     r0, [r0]                  	@ 0x003934B4 0xE5900000 - .... 
	ldr     r2, [sp, #4]              	@ 0x003934B8 0xE59D2004 - .... 
	str     r2, [r0, #100]            	@ 0x003934BC 0xE5802064 - ...d 
	ldr     r0, [sp]                  	@ 0x003934C0 0xE59D0000 - .... 
	add     sp, sp, #8                	@ 0x003934C4 0xE28DD008 - .... 
	b       L00393978                 	@ 0x003934C8 0xEA00012A - ...* 
L003934CC:
	tst     r0, #33554432             	@ 0x003934CC 0xE3100402 - .... 
	moveq   r1, #255                  	@ 0x003934D0 0x03A010FF - .... 
	addeq   r1, r1, #3840             	@ 0x003934D4 0x02811C0F - .... 
	andeq   r1, r1, r0                	@ 0x003934D8 0x00011000 - .... 
	beq     L00393628                 	@ 0x003934DC 0x0A000051 - ...Q 
	and     r1, r0, #15               	@ 0x003934E0 0xE200100F - .... 
	add     pc, pc, r1, lsl #3        	@ 0x003934E4 0xE08FF181 - .... 
	nop                               	@ 0x003934E8 0xE1A00000 - .... 
	ldr     r1, [sp]                  	@ 0x003934EC 0xE59D1000 - .... 
	b       L00393628                 	@ 0x003934F0 0xEA00004C - ...L 
	ldr     r1, [sp, #4]              	@ 0x003934F4 0xE59D1004 - .... 
	b       L00393628                 	@ 0x003934F8 0xEA00004A - ...J 
	mov     r1, r2                    	@ 0x003934FC 0xE1A01002 - .... 
	b       L00393628                 	@ 0x00393500 0xEA000048 - ...H 
	mov     r1, r3                    	@ 0x00393504 0xE1A01003 - .... 
	b       L00393628                 	@ 0x00393508 0xEA000046 - ...F 
	mov     r1, r4                    	@ 0x0039350C 0xE1A01004 - .... 
	b       L00393628                 	@ 0x00393510 0xEA000044 - ...D 
	mov     r1, r5                    	@ 0x00393514 0xE1A01005 - .... 
	b       L00393628                 	@ 0x00393518 0xEA000042 - ...B 
	mov     r1, r6                    	@ 0x0039351C 0xE1A01006 - .... 
	b       L00393628                 	@ 0x00393520 0xEA000040 - ...@ 
	mov     r1, r7                    	@ 0x00393524 0xE1A01007 - .... 
	b       L00393628                 	@ 0x00393528 0xEA00003E - ...> 
	mov     r1, r8                    	@ 0x0039352C 0xE1A01008 - .... 
	b       L00393628                 	@ 0x00393530 0xEA00003C - ...< 
	mov     r1, r9                    	@ 0x00393534 0xE1A01009 - .... 
	b       L00393628                 	@ 0x00393538 0xEA00003A - ...: 
	mov     r1, r10                   	@ 0x0039353C 0xE1A0100A - .... 
	b       L00393628                 	@ 0x00393540 0xEA000038 - ...8 
	mov     r1, r11                   	@ 0x00393544 0xE1A0100B - .... 
	b       L00393628                 	@ 0x00393548 0xEA000036 - ...6 
	mov     r1, r12                   	@ 0x0039354C 0xE1A0100C - .... 
	b       L00393628                 	@ 0x00393550 0xEA000034 - ...4 
	b       L00393568                 	@ 0x00393554 0xEA000003 - .... 
	nop                               	@ 0x00393558 0xE1A00000 - .... 
	b       L003935C8                 	@ 0x0039355C 0xEA000019 - .... 
	nop                               	@ 0x00393560 0xE1A00000 - .... 
	b       L0039322C                 	@ 0x00393564 0xEAFFFF30 - ...0 
L00393568:
	mrs     r1, spsr                  	@ 0x00393568 0xE14F1000 - .O.. 
	and     r1, r1, #31               	@ 0x0039356C 0xE201101F - .... 
	cmp     r1, #27                   	@ 0x00393570 0xE351001B - .Q.. 
	beq     L00393590                 	@ 0x00393574 0x0A000005 - .... 
	sub     sp, sp, #4                	@ 0x00393578 0xE24DD004 - .M.. 
	stmia   sp, {sp}^                 	@ 0x0039357C 0xE8CD2000 - .... 
	nop                               	@ 0x00393580 0xE1A00000 - .... 
	ldr     r1, [sp]                  	@ 0x00393584 0xE59D1000 - .... 
	add     sp, sp, #4                	@ 0x00393588 0xE28DD004 - .... 
	b       L00393628                 	@ 0x0039358C 0xEA000025 - ...% 
L00393590:
	sub     sp, sp, #4                	@ 0x00393590 0xE24DD004 - .M.. 
	str     r0, [sp]                  	@ 0x00393594 0xE58D0000 - .... 
	mrs     r1, spsr                  	@ 0x00393598 0xE14F1000 - .O.. 
	mrs     r0, cpsr                  	@ 0x0039359C 0xE10F0000 - .... 
	msr     cpsr, r1                  	@ 0x003935A0 0xE129F001 - .).. 
	nop                               	@ 0x003935A4 0xE1A00000 - .... 
	nop                               	@ 0x003935A8 0xE1A00000 - .... 
	mov     r1, sp                    	@ 0x003935AC 0xE1A0100D - .... 
	msr     cpsr, r0                  	@ 0x003935B0 0xE129F000 - .).. 
	nop                               	@ 0x003935B4 0xE1A00000 - .... 
	nop                               	@ 0x003935B8 0xE1A00000 - .... 
	ldr     r0, [sp]                  	@ 0x003935BC 0xE59D0000 - .... 
	add     sp, sp, #4                	@ 0x003935C0 0xE28DD004 - .... 
	b       L00393628                 	@ 0x003935C4 0xEA000017 - .... 
L003935C8:
	mrs     r1, spsr                  	@ 0x003935C8 0xE14F1000 - .O.. 
	and     r1, r1, #31               	@ 0x003935CC 0xE201101F - .... 
	cmp     r1, #27                   	@ 0x003935D0 0xE351001B - .Q.. 
	beq     L003935F0                 	@ 0x003935D4 0x0A000005 - .... 
	sub     sp, sp, #4                	@ 0x003935D8 0xE24DD004 - .M.. 
	stmia   sp, {lr}^                 	@ 0x003935DC 0xE8CD4000 - ..@. 
	nop                               	@ 0x003935E0 0xE1A00000 - .... 
	ldr     r1, [sp]                  	@ 0x003935E4 0xE59D1000 - .... 
	add     sp, sp, #4                	@ 0x003935E8 0xE28DD004 - .... 
	b       L00393628                 	@ 0x003935EC 0xEA00000D - .... 
L003935F0:
	sub     sp, sp, #4                	@ 0x003935F0 0xE24DD004 - .M.. 
	str     r0, [sp]                  	@ 0x003935F4 0xE58D0000 - .... 
	mrs     r1, spsr                  	@ 0x003935F8 0xE14F1000 - .O.. 
	mrs     r0, cpsr                  	@ 0x003935FC 0xE10F0000 - .... 
	msr     cpsr, r1                  	@ 0x00393600 0xE129F001 - .).. 
	nop                               	@ 0x00393604 0xE1A00000 - .... 
	nop                               	@ 0x00393608 0xE1A00000 - .... 
	mov     r1, lr                    	@ 0x0039360C 0xE1A0100E - .... 
	msr     cpsr, r0                  	@ 0x00393610 0xE129F000 - .).. 
	nop                               	@ 0x00393614 0xE1A00000 - .... 
	nop                               	@ 0x00393618 0xE1A00000 - .... 
	ldr     r0, [sp]                  	@ 0x0039361C 0xE59D0000 - .... 
	add     sp, sp, #4                	@ 0x00393620 0xE28DD004 - .... 
	b       L00393628                 	@ 0x00393624 0xEAFFFFFF - .... 
L00393628:
	tst     r0, #8388608              	@ 0x00393628 0xE3100502 - .... 
	rsbne   r1, r1, #0                	@ 0x0039362C 0x12611000 - .a.. 
	mov     r0, r0, lsr #16           	@ 0x00393630 0xE1A00820 - .... 
	and     r0, r0, #15               	@ 0x00393634 0xE200000F - .... 
	stmdb   sp!, {lr}                 	@ 0x00393638 0xE92D4000 - .-@. 
	bl      Unnamed_00393710          	@ 0x0039363C 0xEB000033 - ...3 
	ldmia   sp!, {lr}                 	@ 0x00393640 0xE8BD4000 - ..@. 
	b       L0039322C                 	@ 0x00393644 0xEAFFFEF8 - .... 
L00393648:
	tst     r0, #8388608              	@ 0x00393648 0xE3100502 - .... 
	mvnne   r1, #3                    	@ 0x0039364C 0x13E01003 - .... 
	moveq   r1, #4                    	@ 0x00393650 0x03A01004 - .... 
	mov     r0, r0, lsr #16           	@ 0x00393654 0xE1A00820 - .... 
	and     r0, r0, #15               	@ 0x00393658 0xE200000F - .... 
	stmdb   sp!, {lr}                 	@ 0x0039365C 0xE92D4000 - .-@. 
	bl      Unnamed_00393710          	@ 0x00393660 0xEB00002A - ...* 
	ldmia   sp!, {lr}                 	@ 0x00393664 0xE8BD4000 - ..@. 
	b       L00393258                 	@ 0x00393668 0xEAFFFEFA - .... 
L0039366C:
	mov     r1, #0                    	@ 0x0039366C 0xE3A01000 - .... 
	tst     r0, #1                    	@ 0x00393670 0xE3100001 - .... 
	addne   r1, r1, #4                	@ 0x00393674 0x12811004 - .... 
	tst     r0, #2                    	@ 0x00393678 0xE3100002 - .... 
	addne   r1, r1, #4                	@ 0x0039367C 0x12811004 - .... 
	tst     r0, #4                    	@ 0x00393680 0xE3100004 - .... 
	addne   r1, r1, #4                	@ 0x00393684 0x12811004 - .... 
	tst     r0, #8                    	@ 0x00393688 0xE3100008 - .... 
	addne   r1, r1, #4                	@ 0x0039368C 0x12811004 - .... 
	tst     r0, #16                   	@ 0x00393690 0xE3100010 - .... 
	addne   r1, r1, #4                	@ 0x00393694 0x12811004 - .... 
	tst     r0, #32                   	@ 0x00393698 0xE3100020 - .... 
	addne   r1, r1, #4                	@ 0x0039369C 0x12811004 - .... 
	tst     r0, #64                   	@ 0x003936A0 0xE3100040 - ...@ 
	addne   r1, r1, #4                	@ 0x003936A4 0x12811004 - .... 
	tst     r0, #128                  	@ 0x003936A8 0xE3100080 - .... 
	addne   r1, r1, #4                	@ 0x003936AC 0x12811004 - .... 
	tst     r0, #256                  	@ 0x003936B0 0xE3100C01 - .... 
	addne   r1, r1, #4                	@ 0x003936B4 0x12811004 - .... 
	tst     r0, #512                  	@ 0x003936B8 0xE3100C02 - .... 
	addne   r1, r1, #4                	@ 0x003936BC 0x12811004 - .... 
	tst     r0, #1024                 	@ 0x003936C0 0xE3100B01 - .... 
	addne   r1, r1, #4                	@ 0x003936C4 0x12811004 - .... 
	tst     r0, #2048                 	@ 0x003936C8 0xE3100B02 - .... 
	addne   r1, r1, #4                	@ 0x003936CC 0x12811004 - .... 
	tst     r0, #4096                 	@ 0x003936D0 0xE3100A01 - .... 
	addne   r1, r1, #4                	@ 0x003936D4 0x12811004 - .... 
	tst     r0, #8192                 	@ 0x003936D8 0xE3100A02 - .... 
	addne   r1, r1, #4                	@ 0x003936DC 0x12811004 - .... 
	tst     r0, #16384                	@ 0x003936E0 0xE3100901 - .... 
	addne   r1, r1, #4                	@ 0x003936E4 0x12811004 - .... 
	tst     r0, #32768                	@ 0x003936E8 0xE3100902 - .... 
	addne   r1, r1, #4                	@ 0x003936EC 0x12811004 - .... 
	tst     r0, #8388608              	@ 0x003936F0 0xE3100502 - .... 
	rsbne   r1, r1, #0                	@ 0x003936F4 0x12611000 - .a.. 
	mov     r0, r0, lsr #16           	@ 0x003936F8 0xE1A00820 - .... 
	and     r0, r0, #15               	@ 0x003936FC 0xE200000F - .... 
	stmdb   sp!, {lr}                 	@ 0x00393700 0xE92D4000 - .-@. 
	bl      Unnamed_00393710          	@ 0x00393704 0xEB000001 - .... 
	ldmia   sp!, {lr}                 	@ 0x00393708 0xE8BD4000 - ..@. 
	b       L00393258                 	@ 0x0039370C 0xEAFFFED1 - .... 

Unnamed_00393710:
	@ label = 'Unnamed_00393710'
	add     pc, pc, r0, lsl #3        	@ 0x00393710 0xE08FF180 - .... 
	nop                               	@ 0x00393714 0xE1A00000 - .... 
	b       L00393794                 	@ 0x00393718 0xEA00001D - .... 
	nop                               	@ 0x0039371C 0xE1A00000 - .... 
	b       L003937A4                 	@ 0x00393720 0xEA00001F - .... 
	nop                               	@ 0x00393724 0xE1A00000 - .... 
	add     r2, r2, r1                	@ 0x00393728 0xE0822001 - .... 
	mov     pc, lr                    	@ 0x0039372C 0xE1A0F00E - .... 
	add     r3, r3, r1                	@ 0x00393730 0xE0833001 - ..0. 
	mov     pc, lr                    	@ 0x00393734 0xE1A0F00E - .... 
	add     r4, r4, r1                	@ 0x00393738 0xE0844001 - ..@. 
	mov     pc, lr                    	@ 0x0039373C 0xE1A0F00E - .... 
	add     r5, r5, r1                	@ 0x00393740 0xE0855001 - ..P. 
	mov     pc, lr                    	@ 0x00393744 0xE1A0F00E - .... 
	add     r6, r6, r1                	@ 0x00393748 0xE0866001 - ..`. 
	mov     pc, lr                    	@ 0x0039374C 0xE1A0F00E - .... 
	add     r7, r7, r1                	@ 0x00393750 0xE0877001 - ..p. 
	mov     pc, lr                    	@ 0x00393754 0xE1A0F00E - .... 
	add     r8, r8, r1                	@ 0x00393758 0xE0888001 - .... 
	mov     pc, lr                    	@ 0x0039375C 0xE1A0F00E - .... 
	add     r9, r9, r1                	@ 0x00393760 0xE0899001 - .... 
	mov     pc, lr                    	@ 0x00393764 0xE1A0F00E - .... 
	add     r10, r10, r1              	@ 0x00393768 0xE08AA001 - .... 
	mov     pc, lr                    	@ 0x0039376C 0xE1A0F00E - .... 
	add     r11, r11, r1              	@ 0x00393770 0xE08BB001 - .... 
	mov     pc, lr                    	@ 0x00393774 0xE1A0F00E - .... 
	add     r12, r12, r1              	@ 0x00393778 0xE08CC001 - .... 
	mov     pc, lr                    	@ 0x0039377C 0xE1A0F00E - .... 
	b       L003937B4                 	@ 0x00393780 0xEA00000B - .... 
	nop                               	@ 0x00393784 0xE1A00000 - .... 
	b       L00393824                 	@ 0x00393788 0xEA000025 - ...% 
	nop                               	@ 0x0039378C 0xE1A00000 - .... 
	mov     pc, lr                    	@ 0x00393790 0xE1A0F00E - .... 
L00393794:
	ldr     r0, [sp, #4]              	@ 0x00393794 0xE59D0004 - .... 
	add     r0, r0, r1                	@ 0x00393798 0xE0800001 - .... 
	str     r0, [sp, #4]              	@ 0x0039379C 0xE58D0004 - .... 
	mov     pc, lr                    	@ 0x003937A0 0xE1A0F00E - .... 
L003937A4:
	ldr     r0, [sp, #8]              	@ 0x003937A4 0xE59D0008 - .... 
	add     r0, r0, r1                	@ 0x003937A8 0xE0800001 - .... 
	str     r0, [sp, #8]              	@ 0x003937AC 0xE58D0008 - .... 
	mov     pc, lr                    	@ 0x003937B0 0xE1A0F00E - .... 
L003937B4:
	mrs     r0, spsr                  	@ 0x003937B4 0xE14F0000 - .O.. 
	and     r0, r0, #31               	@ 0x003937B8 0xE200001F - .... 
	cmp     r0, #27                   	@ 0x003937BC 0xE350001B - .P.. 
	beq     L003937EC                 	@ 0x003937C0 0x0A000009 - .... 
	sub     sp, sp, #4                	@ 0x003937C4 0xE24DD004 - .M.. 
	stmia   sp, {sp}^                 	@ 0x003937C8 0xE8CD2000 - .... 
	nop                               	@ 0x003937CC 0xE1A00000 - .... 
	ldr     r0, [sp]                  	@ 0x003937D0 0xE59D0000 - .... 
	add     r0, r0, r1                	@ 0x003937D4 0xE0800001 - .... 
	str     r0, [sp]                  	@ 0x003937D8 0xE58D0000 - .... 
	ldmia   sp, {sp}^                 	@ 0x003937DC 0xE8DD2000 - .... 
	nop                               	@ 0x003937E0 0xE1A00000 - .... 
	add     sp, sp, #4                	@ 0x003937E4 0xE28DD004 - .... 
	mov     pc, lr                    	@ 0x003937E8 0xE1A0F00E - .... 
L003937EC:
	sub     sp, sp, #4                	@ 0x003937EC 0xE24DD004 - .M.. 
	str     r2, [sp]                  	@ 0x003937F0 0xE58D2000 - .... 
	mrs     r2, spsr                  	@ 0x003937F4 0xE14F2000 - .O.. 
	mrs     r0, cpsr                  	@ 0x003937F8 0xE10F0000 - .... 
	msr     cpsr, r2                  	@ 0x003937FC 0xE129F002 - .).. 
	nop                               	@ 0x00393800 0xE1A00000 - .... 
	nop                               	@ 0x00393804 0xE1A00000 - .... 
	add     sp, sp, r1                	@ 0x00393808 0xE08DD001 - .... 
	msr     cpsr, r0                  	@ 0x0039380C 0xE129F000 - .).. 
	nop                               	@ 0x00393810 0xE1A00000 - .... 
	nop                               	@ 0x00393814 0xE1A00000 - .... 
	ldr     r2, [sp]                  	@ 0x00393818 0xE59D2000 - .... 
	add     sp, sp, #4                	@ 0x0039381C 0xE28DD004 - .... 
	mov     pc, lr                    	@ 0x00393820 0xE1A0F00E - .... 
L00393824:
	mrs     r0, spsr                  	@ 0x00393824 0xE14F0000 - .O.. 
	and     r0, r0, #31               	@ 0x00393828 0xE200001F - .... 
	cmp     r0, #27                   	@ 0x0039382C 0xE350001B - .P.. 
	beq     L0039385C                 	@ 0x00393830 0x0A000009 - .... 
	sub     sp, sp, #4                	@ 0x00393834 0xE24DD004 - .M.. 
	stmia   sp, {lr}^                 	@ 0x00393838 0xE8CD4000 - ..@. 
	nop                               	@ 0x0039383C 0xE1A00000 - .... 
	ldr     r0, [sp]                  	@ 0x00393840 0xE59D0000 - .... 
	add     r0, r0, r1                	@ 0x00393844 0xE0800001 - .... 
	str     r0, [sp]                  	@ 0x00393848 0xE58D0000 - .... 
	ldmia   sp, {lr}^                 	@ 0x0039384C 0xE8DD4000 - ..@. 
	nop                               	@ 0x00393850 0xE1A00000 - .... 
	add     sp, sp, #4                	@ 0x00393854 0xE28DD004 - .... 
	mov     pc, lr                    	@ 0x00393858 0xE1A0F00E - .... 
L0039385C:
	sub     sp, sp, #4                	@ 0x0039385C 0xE24DD004 - .M.. 
	str     r2, [sp]                  	@ 0x00393860 0xE58D2000 - .... 
	mrs     r2, spsr                  	@ 0x00393864 0xE14F2000 - .O.. 
	mrs     r0, cpsr                  	@ 0x00393868 0xE10F0000 - .... 
	msr     cpsr, r2                  	@ 0x0039386C 0xE129F002 - .).. 
	nop                               	@ 0x00393870 0xE1A00000 - .... 
	nop                               	@ 0x00393874 0xE1A00000 - .... 
	add     lr, lr, r1                	@ 0x00393878 0xE08EE001 - .... 
	msr     cpsr, r0                  	@ 0x0039387C 0xE129F000 - .).. 
	nop                               	@ 0x00393880 0xE1A00000 - .... 
	nop                               	@ 0x00393884 0xE1A00000 - .... 
	ldr     r2, [sp]                  	@ 0x00393888 0xE59D2000 - .... 
	add     sp, sp, #4                	@ 0x0039388C 0xE28DD004 - .... 
	mov     pc, lr                    	@ 0x00393890 0xE1A0F00E - .... 
L00393894:
	b       L003932DC                 	@ 0x00393894 0xEAFFFE90 - .... 

# Handle Abort in any mode but User or Unknown by throwing a system panic
L00393898:
	throwSystemPanic                  	@ 0x00393898 0xE6000510 - .... 
	.ascii	"Non-user-mode abort (deep toast alert)\000\000"

# Throw exception (pointer to text in r0)
L003938C4:
        ldr     lr, =0x01BE319C             	# Address of "Throw" Function
	mrc     15, 0, r1, cr6, cr6, 0    	@ 0x003938C8 0xEE161F16 - .... 
	mov     r2, #0                    	@ 0x003938CC 0xE3A02000 - .... 
	add     sp, sp, #8                	@ 0x003938D0 0xE28DD008 - .... 
	stmdb   sp!, {r0-r2}              	@ 0x003938D4 0xE92D0007 - .-.. 
        ldr     r1, =0x0C100FF8             	# gCurrentTask (CTask)
	ldr     r1, [r1]                  	@ 0x003938DC 0xE5911000 - .... 
	mov     r0, #0                    	@ 0x003938E0 0xE3A00000 - .... 
	ldr     r2, [r1, #116]            	@ 0x003938E4 0xE5912074 - ...t 
	cmp     r2, #0                    	@ 0x003938E8 0xE3520000 - .R.. 
	ldrne   r2, [r2, #16]             	@ 0x003938EC 0x15922010 - .... 
	orrne   r0, r0, r2                	@ 0x003938F0 0x11800002 - .... 
	ldr     r2, [r1, #120]            	@ 0x003938F4 0xE5912078 - ...x 
	cmp     r2, #0                    	@ 0x003938F8 0xE3520000 - .R.. 
	ldrne   r2, [r2, #16]             	@ 0x003938FC 0x15922010 - .... 
	orrne   r0, r0, r2                	@ 0x00393900 0x11800002 - .... 
L00393904:
	ldr     r1, [r1, #124]            	@ 0x00393904 0xE591107C - ...| 
	cmp     r1, #0                    	@ 0x00393908 0xE3510000 - .Q.. 
	beq     L00393928                 	@ 0x0039390C 0x0A000005 - .... 
	ldr     r2, [r1, #116]            	@ 0x00393910 0xE5912074 - ...t 
	cmp     r2, #0                    	@ 0x00393914 0xE3520000 - .R.. 
	beq     L00393928                 	@ 0x00393918 0x0A000002 - .... 
	ldr     r2, [r2, #16]             	@ 0x0039391C 0xE5922010 - .... 
	orr     r0, r0, r2                	@ 0x00393920 0xE1800002 - .... 
	b       L00393904                 	@ 0x00393924 0xEAFFFFF6 - .... 
L00393928:
	stmdb   sp!, {r0, r1}             	@ 0x00393928 0xE92D0003 - .-.. 
	nop                               	@ 0x0039392C 0xE1A00000 - .... 
        ldr     r1, =0x0C008400             	# gParamBlockFromImage
	str     r0, [r1, #176]            	@ 0x00393934 0xE58100B0 - .... 
	ldmia   sp!, {r0, r1}             	@ 0x00393938 0xE8BD0003 - .... 
	mcr     15, 0, r0, cr3, cr3, 0    	@ 0x0039393C 0xEE030F13 - .... 
	ldmia   sp!, {r0-r2}              	@ 0x00393940 0xE8BD0007 - .... 
	movs    pc, lr                    	@ 0x00393944 0xE1B0F00E - .... 
L00393948:
	.word	0x0C101028			@ 0x00393948 "...(" 202379304 (flags_type_arm_word) ?
L0039394C:
	.word	0x0C100FE4			@ 0x0039394C "...." 202379236 (flags_type_arm_word) ?
L00393950:
	.word	0x0C101A2C			@ 0x00393950 "...," 202381868 (flags_type_arm_word) ?
L00393954:
	.word	0x0C100FF8			@ 0x00393954 "...." 202379256 (flags_type_arm_word) ?
L00393958:
	.word	0x0C101040			@ 0x00393958 "...@" 202379328 (flags_type_arm_word) ?
L0039395C:
        .word	0x0C008400                      # gParamBlockFromImage
L00393960:
	.word	0x0F240000			@ 0x00393960 ".$.." 254017536 (flags_type_arm_word) ?
L00393964:
	.word	0x000001FF			@ 0x00393964 "...." 511 (flags_type_arm_word) ?
L00393968:
	.word	0x003712B8			@ 0x00393968 ".7.." 3609272 (flags_type_arm_word) ?
L0039396C:
	.word	0x003712BC			@ 0x0039396C ".7.." 3609276 (flags_type_arm_word) ?
L00393970:
	.word	0x003712C8			@ 0x00393970 ".7.." 3609288 (flags_type_arm_word) ?
L00393974:
	.word	0x01BE319C			@ 0x00393974 "..1." 29241756 (flags_type_arm_word) ?

L00393978:
	ldr     r5, =0x0C100FF8             	# gCurrentTask (CTask)
	ldr     r5, [r5]                  	@ 0x0039397C 0xE5955000 - ..P. 
	bl      VEC_FaultMonitorEntry__FUl  	@ 0x00393980 0xEB5D909B - .].. 
	cmp     r0, #0                    	@ 0x00393984 0xE3500000 - .P.. 
	beq     L00393A30                 	@ 0x00393988 0x0A000028 - ...( 
	mov     r0, r5                    	@ 0x0039398C 0xE1A00005 - .... 
	bl      VEC_SwapInGlobals         	@ 0x00393990 0xEB5DD29E - .].. 
	add     r5, r5, #16               	@ 0x00393994 0xE2855010 - ..P. 
	ldr     lr, [r5, #60]             	@ 0x00393998 0xE595E03C - ...< 
	ldr     r0, [r5, #64]             	@ 0x0039399C 0xE5950040 - ...@ 
	msr     spsr, r0                  	@ 0x003939A0 0xE169F000 - .i.. 
	nop                               	@ 0x003939A4 0xE1A00000 - .... 
	nop                               	@ 0x003939A8 0xE1A00000 - .... 
	and     r0, r0, #31               	@ 0x003939AC 0xE200001F - .... 
	cmp     r0, #27                   	@ 0x003939B0 0xE350001B - .P.. 
	ldmneia r5, {r0-lr}^              	@ 0x003939B4 0x18D57FFF - ... 
	nop                               	@ 0x003939B8 0xE1A00000 - .... 
	bne     L003939EC                 	@ 0x003939BC 0x1A00000A - .... 
	ldr     r2, [r5, #64]             	@ 0x003939C0 0xE5952040 - ...@ 
	mrs     r0, cpsr                  	@ 0x003939C4 0xE10F0000 - .... 
	msr     cpsr, r2                  	@ 0x003939C8 0xE129F002 - .).. 
	nop                               	@ 0x003939CC 0xE1A00000 - .... 
	nop                               	@ 0x003939D0 0xE1A00000 - .... 
	ldr     sp, [r5, #52]             	@ 0x003939D4 0xE595D034 - ...4 
	ldr     lr, [r5, #56]             	@ 0x003939D8 0xE595E038 - ...8 
	msr     cpsr, r0                  	@ 0x003939DC 0xE129F000 - .).. 
	nop                               	@ 0x003939E0 0xE1A00000 - .... 
	nop                               	@ 0x003939E4 0xE1A00000 - .... 
	ldmia   r5, {r0-r12}              	@ 0x003939E8 0xE8951FFF - .... 
L003939EC:
	stmdb   sp!, {r0, r1}             	@ 0x003939EC 0xE92D0003 - .-.. 
	ldr     r0, L0039445C             	@ 0x003939F0 0xE59F0A64 - ...d 
	ldr     r0, [r0]                  	@ 0x003939F4 0xE5900000 - .... 
	tst     r0, #16                   	@ 0x003939F8 0xE3100010 - .... 
	bne     L00393A1C                 	@ 0x003939FC 0x1A000006 - .... 
	mov     r0, #16                   	@ 0x00393A00 0xE3A00010 - .... 
	bl      VEC_IsSerialDebuggingAndFlag  	@ 0x00393A04 0xEB5CB9C6 - .\.. 
	cmp     r0, #0                    	@ 0x00393A08 0xE3500000 - .P.. 
	bne     L00393A1C                 	@ 0x00393A0C 0x1A000002 - .... 
	mrc     15, 0, r0, cr6, cr6, 0    	@ 0x00393A10 0xEE160F16 - .... 
	bl      VEC_RebootIfFaultWasInStack  	@ 0x00393A14 0xEB5E0C58 - .^.X 
	b       L003932DC                 	@ 0x00393A18 0xEAFFFE2F - .../ 
L00393A1C:
	stmdb   sp!, {lr}                 	@ 0x00393A1C 0xE92D4000 - .-@. 
	mrs     r0, spsr                  	@ 0x00393A20 0xE14F0000 - .O.. 
	stmdb   sp!, {r0}                 	@ 0x00393A24 0xE92D0001 - .-.. 
	mov     r1, #4                    	@ 0x00393A28 0xE3A01004 - .... 
	b       VEC_ReportException       	@ 0x00393A2C 0xEA59BDEA - .Y.. 
L00393A30:
	mrs     r0, cpsr                  	@ 0x00393A30 0xE10F0000 - .... 
	orr     r0, r0, #128              	@ 0x00393A34 0xE3800080 - .... 
	msr     cpsr_ctl, r0              	@ 0x00393A38 0xE121F000 - .!.. 
	nop                               	@ 0x00393A3C 0xE1A00000 - .... 
	nop                               	@ 0x00393A40 0xE1A00000 - .... 
	mrs     r4, spsr                  	@ 0x00393A44 0xE14F4000 - .O@. 
	stmdb   sp!, {r4}                 	@ 0x00393A48 0xE92D0010 - .-.. 
	mrs     r4, cpsr                  	@ 0x00393A4C 0xE10F4000 - ..@. 
	msr     cpsr_ctl, #19             	@ 0x00393A50 0xE321F013 - .!.. 
	nop                               	@ 0x00393A54 0xE1A00000 - .... 
	nop                               	@ 0x00393A58 0xE1A00000 - .... 
	stmdb   sp!, {r10-r12, lr}        	@ 0x00393A5C 0xE92D5C00 - .-\. 
	bl      VEC_DoDeferrals           	@ 0x00393A60 0xEB5D9048 - .].H 
	ldmia   sp!, {r10-r12, lr}        	@ 0x00393A64 0xE8BD5C00 - ..\. 
	msr     cpsr_ctl, r4              	@ 0x00393A68 0xE121F004 - .!.. 
	nop                               	@ 0x00393A6C 0xE1A00000 - .... 
	nop                               	@ 0x00393A70 0xE1A00000 - .... 
	ldmia   sp!, {r4}                 	@ 0x00393A74 0xE8BD0010 - .... 
	msr     spsr, r4                  	@ 0x00393A78 0xE169F004 - .i.. 
	nop                               	@ 0x00393A7C 0xE1A00000 - .... 
	nop                               	@ 0x00393A80 0xE1A00000 - .... 
	bl      VEC_Scheduler             	@ 0x00393A84 0xEB5DC605 - .].. 
	ldr     r1, L00393950             	@ 0x00393A88 0xE51F1140 - ...@ 
	ldr     r1, [r1]                  	@ 0x00393A8C 0xE5911000 - .... 
	cmp     r1, #0                    	@ 0x00393A90 0xE3510000 - .Q.. 
	beq     L00393AA4                 	@ 0x00393A94 0x0A000002 - .... 
	stmdb   sp!, {r0}                 	@ 0x00393A98 0xE92D0001 - .-.. 
	bl      VEC_StartScheduler        	@ 0x00393A9C 0xEB5DCE4E - .].N 
	ldmia   sp!, {r0}                 	@ 0x00393AA0 0xE8BD0001 - .... 
L00393AA4:
	ldr     r2, =0x0C100FF8             	# gCurrentTask (CTask)
	str     r0, [r2]                  	@ 0x00393AA8 0xE5820000 - .... 
	mov     r4, r0                    	@ 0x00393AAC 0xE1A04000 - ..@. 
	bl      VEC_SwapInGlobals         	@ 0x00393AB0 0xEB5DD256 - .].V 
	mov     r0, r4                    	@ 0x00393AB4 0xE1A00004 - .... 
	add     r0, r0, #16               	@ 0x00393AB8 0xE2800010 - .... 
	ldr     lr, [r0, #60]             	@ 0x00393ABC 0xE590E03C - ...< 
	ldr     r1, [r0, #64]             	@ 0x00393AC0 0xE5901040 - ...@ 
	msr     spsr, r1                  	@ 0x00393AC4 0xE169F001 - .i.. 
	nop                               	@ 0x00393AC8 0xE1A00000 - .... 
	nop                               	@ 0x00393ACC 0xE1A00000 - .... 
	and     r1, r1, #31               	@ 0x00393AD0 0xE201101F - .... 
	cmp     r1, #27                   	@ 0x00393AD4 0xE351001B - .Q.. 
	ldmneia r0, {r0-lr}^              	@ 0x00393AD8 0x18D07FFF - ... 
	nop                               	@ 0x00393ADC 0xE1A00000 - .... 
	bne     L00393B10                 	@ 0x00393AE0 0x1A00000A - .... 
	ldr     r2, [r0, #64]             	@ 0x00393AE4 0xE5902040 - ...@ 
	mrs     r1, cpsr                  	@ 0x00393AE8 0xE10F1000 - .... 
	msr     cpsr, r2                  	@ 0x00393AEC 0xE129F002 - .).. 
	nop                               	@ 0x00393AF0 0xE1A00000 - .... 
	nop                               	@ 0x00393AF4 0xE1A00000 - .... 
	ldr     sp, [r0, #52]             	@ 0x00393AF8 0xE590D034 - ...4 
	ldr     lr, [r0, #56]             	@ 0x00393AFC 0xE590E038 - ...8 
	msr     cpsr, r1                  	@ 0x00393B00 0xE129F001 - .).. 
	nop                               	@ 0x00393B04 0xE1A00000 - .... 
	nop                               	@ 0x00393B08 0xE1A00000 - .... 
	ldmia   r0, {r0-r12}              	@ 0x00393B0C 0xE8901FFF - .... 
L00393B10:
	stmdb   sp!, {r0-r2}              	@ 0x00393B10 0xE92D0007 - .-.. 
	ldr     r1, =0x0C100FF8             	# gCurrentTask (CTask)
	ldr     r1, [r1]                  	@ 0x00393B18 0xE5911000 - .... 
	mov     r0, #0                    	@ 0x00393B1C 0xE3A00000 - .... 
	ldr     r2, [r1, #116]            	@ 0x00393B20 0xE5912074 - ...t 
	cmp     r2, #0                    	@ 0x00393B24 0xE3520000 - .R.. 
	ldrne   r2, [r2, #16]             	@ 0x00393B28 0x15922010 - .... 
	orrne   r0, r0, r2                	@ 0x00393B2C 0x11800002 - .... 
	ldr     r2, [r1, #120]            	@ 0x00393B30 0xE5912078 - ...x 
	cmp     r2, #0                    	@ 0x00393B34 0xE3520000 - .R.. 
	ldrne   r2, [r2, #16]             	@ 0x00393B38 0x15922010 - .... 
	orrne   r0, r0, r2                	@ 0x00393B3C 0x11800002 - .... 
L00393B40:
	ldr     r1, [r1, #124]            	@ 0x00393B40 0xE591107C - ...| 
	cmp     r1, #0                    	@ 0x00393B44 0xE3510000 - .Q.. 
	beq     L00393B64                 	@ 0x00393B48 0x0A000005 - .... 
	ldr     r2, [r1, #116]            	@ 0x00393B4C 0xE5912074 - ...t 
	cmp     r2, #0                    	@ 0x00393B50 0xE3520000 - .R.. 
	beq     L00393B64                 	@ 0x00393B54 0x0A000002 - .... 
	ldr     r2, [r2, #16]             	@ 0x00393B58 0xE5922010 - .... 
	orr     r0, r0, r2                	@ 0x00393B5C 0xE1800002 - .... 
	b       L00393B40                 	@ 0x00393B60 0xEAFFFFF6 - .... 
L00393B64:
	stmdb   sp!, {r0, r1}             	@ 0x00393B64 0xE92D0003 - .-.. 
	nop                               	@ 0x00393B68 0xE1A00000 - .... 
        ldr     r1, =0x0C008400             	# gParamBlockFromImage
	str     r0, [r1, #176]            	@ 0x00393B70 0xE58100B0 - .... 
	ldmia   sp!, {r0, r1}             	@ 0x00393B74 0xE8BD0003 - .... 
	mcr     15, 0, r0, cr3, cr3, 0    	@ 0x00393B78 0xEE030F13 - .... 
	ldmia   sp!, {r0-r2}              	@ 0x00393B7C 0xE8BD0007 - .... 
	movs    pc, lr                    	@ 0x00393B80 0xE1B0F00E - .... 
  